/*
 * > /*
>  * INSANE - Interactive Structural Analysis Environment
>  *
>  * Copyright (C) 2003-2004
>  * Universidade Federal de Minas Gerais
>  * Escola de Engenharia
>  * Departamento de Engenharia de Estruturas
>  *
>  * Author's email :     insane@dees.ufmg.br
>  * Author's Website :   http://www.dees.ufmg.br/insane
>  *
>  * This program is free software; you can redistribute it and/or
>  * modify it under the terms of the GNU General Public License
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
>  * along with this program; if not, write to the Free Software
>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-
> 1307, USA.
 *
 */

package br.ufmg.dees.insane.xyplot.xyplot_view;

import java.awt.Color;
import java.awt.Font;
import java.io.Serializable;

import br.ufmg.dees.insane.draw.MarkDraw;

/**
 * A class representing the state of the model.
 * @author  	Penna, Samuel & Pitangueira, Roque
 * @see xyplot_view.InterfaceXYPlot
 * @see xyplot_view.DrawingArea
 * @since    april 2005
 */
public class AxisViewState implements Serializable {

 	/**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;
	
	private String label;
	private Color 	axisColor 		= Color.YELLOW;
	private Color 	titleColor 		= Color.YELLOW;
	private boolean isAxisOn 		= true;
	private boolean isTitleOn 		= true;
	private boolean isMarksOn 		= true;
	private boolean isMarksTextOn 	= true;
	
	private int 	markSize 		= 10;
	private int 	markTextSize 	= 10;
	private byte 	markTextPlace 	= MarkDraw.SOUTH;
	private String 	markTextFont 	= "Arial";
	private byte 	markTextStyle 	= Font.ITALIC;
	
	private double  titleXCenter 	= 2.0;
	private double  titleYCenter 	= 2.0;
	private double  titleTextAngle 	= Math.PI/4;
	private int 	titleTextSize 	= 15;
	private String 	titleTextFont 	= "Arial";
	private byte 	titleTextStyle 	= Font.HANGING_BASELINE;
	
	/**
     * The class constructor 
     */
    public AxisViewState() {
    }
    
	/**
	 * @return  Returns the axisColor.
	 * @uml.property  name="axisColor"
	 */
	public Color getAxisColor(){
		return axisColor;
	}
	
	public Color getAxisTitleColor(){
		return titleColor;
	}
	
	/**
	 * @return
	 * @uml.property  name="isAxisOn"
	 */
	public boolean isAxisOn(){
		return isAxisOn;
	}
	
	/**
	 * @return
	 * @uml.property  name="isMarksOn"
	 */
	public boolean isMarksOn(){
		return isMarksOn;
	}
	
	/**
	 * @return
	 * @uml.property  name="isMarksTextOn"
	 */
	public boolean isMarksTextOn(){
		return isMarksTextOn;
	}
	
	/**
	 * @return
	 * @uml.property  name="isTitleOn"
	 */
	public boolean isTitleOn(){
		return isTitleOn;
	}
	
	/**
	 * @return  Returns the markSize.
	 * @uml.property  name="markSize"
	 */
	public int getMarkSize(){
		return markSize;
	}
	
	/**
	 * @return  Returns the markTextPlace.
	 * @uml.property  name="markTextPlace"
	 */
	public byte getMarkTextPlace(){
		return markTextPlace;
	}
	
	/**
	 * @return  Returns the markTextSize.
	 * @uml.property  name="markTextSize"
	 */
	public int getMarkTextSize(){
		return markTextSize;
	}
	
	/**
	 * @return  Returns the markTextFont.
	 * @uml.property  name="markTextFont"
	 */
	public String getMarkTextFont(){
		return markTextFont;
	}
	
	/**
	 * @return  Returns the markTextStyle.
	 * @uml.property  name="markTextStyle"
	 */
	public byte getMarkTextStyle(){
		return markTextStyle;
	}
	
	/**
	 * @return  Returns the titleXCenter.
	 * @uml.property  name="titleXCenter"
	 */
	public double  getTitleXCenter(){
		return titleXCenter;
	}
	
	/**
	 * @return  Returns the titleYCenter.
	 * @uml.property  name="titleYCenter"
	 */
	public double  getTitleYCenter(){
		return titleYCenter;
	}
	
	/**
	 * @return  Returns the titleTextAngle.
	 * @uml.property  name="titleTextAngle"
	 */
	public double  getTitleTextAngle(){
		return titleTextAngle;
	}
	
	/**
	 * @return  Returns the titleTextSize.
	 * @uml.property  name="titleTextSize"
	 */
	public int  getTitleTextSize(){
		return titleTextSize;
	}
	
	/**
	 * @return  Returns the titleTextFont.
	 * @uml.property  name="titleTextFont"
	 */
	public String getTitleTextFont(){
		return titleTextFont;
	}
	
	/**
	 * @return  Returns the titleTextStyle.
	 * @uml.property  name="titleTextStyle"
	 */
	public byte getTitleTextStyle(){
		return titleTextStyle;
	}
	
	/**
	 * @param axisColor  The axisColor to set.
	 * @uml.property  name="axisColor"
	 */
	public void setAxisColor(Color c){
		this.axisColor = c;
	}
	
	public void setAxisTitleColor(Color c){
		this.titleColor = c;
	}
	
	/**
	 * @param isAxisOn  The isAxisOn to set.
	 * @uml.property  name="isAxisOn"
	 */
	public void setAxisOn(boolean m){
		this.isAxisOn =m;
	}

	/**
	 * @param isTitleOn  The isTitleOn to set.
	 * @uml.property  name="isTitleOn"
	 */
	public void setTitleOn(boolean m){
		this.isTitleOn =m;
	}
	
	/**
	 * @param isMarksOn  The isMarksOn to set.
	 * @uml.property  name="isMarksOn"
	 */
	public void setMarksOn(boolean m){
		this.isMarksOn =m;
	}
	
	/**
	 * @param isMarksTextOn  The isMarksTextOn to set.
	 * @uml.property  name="isMarksTextOn"
	 */
	public void setMarksTextOn(boolean m){
		this.isMarksTextOn =m;
	}
	
	/**
	 * @param markSize  The markSize to set.
	 * @uml.property  name="markSize"
	 */
	public  void setMarkSize(int ms){
		this.markSize = ms;
	}
	
	/**
	 * @param markTextPlace  The markTextPlace to set.
	 * @uml.property  name="markTextPlace"
	 */
	public  void setMarkTextPlace(byte mtp){
		this.markTextPlace = mtp;
	}
	
	/**
	 * @param markTextSize  The markTextSize to set.
	 * @uml.property  name="markTextSize"
	 */
	public  void setMarkTextSize(int mts){
		this.markTextSize= mts;
	}
	
	/**
	 * @param markTextFont  The markTextFont to set.
	 * @uml.property  name="markTextFont"
	 */
	public  void setMarkTextFont(String mtf){
		this.markTextFont = mtf;
	}
	
	/**
	 * @param titleTextFont  The titleTextFont to set.
	 * @uml.property  name="titleTextFont"
	 */
	public void setTitleTextFont(String t){
		this.titleTextFont = t;
	}
	
	/**
	 * @param markTextStyle  The markTextStyle to set.
	 * @uml.property  name="markTextStyle"
	 */
	public  void setMarkTextStyle(byte mts){
		this.markTextStyle = mts;
	}
	
	/**
	 * @param titleXCenter  The titleXCenter to set.
	 * @uml.property  name="titleXCenter"
	 */
	public  void setTitleXCenter(double xc){
		this.titleXCenter = xc;
	}
	
	/**
	 * @param titleYCenter  The titleYCenter to set.
	 * @uml.property  name="titleYCenter"
	 */
	public  void setTitleYCenter(double yc){
		this.titleYCenter = yc;
	}
	
	/**
	 * @param titleTextAngle  The titleTextAngle to set.
	 * @uml.property  name="titleTextAngle"
	 */
	public  void setTitleTextAngle(double a){
		this.titleTextAngle = a;
	}
	/**
	 * @param titleTextSize  The titleTextSize to set.
	 * @uml.property  name="titleTextSize"
	 */
	public void setTitleTextSize(int titleTextSize) {
		this.titleTextSize = titleTextSize;
	}
	/**
	 * @param titleTextStyle  The titleTextStyle to set.
	 * @uml.property  name="titleTextStyle"
	 */
	public void setTitleTextStyle(byte titleTextStyle) {
		this.titleTextStyle = titleTextStyle;
	}

	/**
	 * @return  Returns the label.
	 * @uml.property  name="label"
	 */
	public String getLabel() {
		return label;
	}

	/**
	 * @param label  The label to set.
	 * @uml.property  name="label"
	 */
	public void setLabel(String label) {
		this.label = label;
	}
}